package com.theaf.basemodule.common.api;

import com.theaf.basemodule.common.condition.UserCondition;
import com.theaf.basemodule.common.dto.user.UserDTO;
import com.theaf.basemodule.common.vo.user.UserVO;
import com.theaf.core.api.model.UserInfo;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @author luojuan
 * @create 2017-12-26 11:09
 **/
public interface UserService {

    /**
     * 添加用户
     * @param userVO
     * @return
     */
    Long save(UserVO userVO);

    /**
     * 查询用户信息
     * @param userName
     * @param password
     * @return
     */
    UserInfo login(String userName,String password);

    /**
     * 查询用户列表
     * @param userCondition
     * @return
     */
    Page<UserDTO> findByCondition(UserCondition userCondition);

    /**
     * 查询机构和岗位下的用户
     * @param organId 机构
     * @param childed 是否包括下级机构
     * @param posId 岗位
     * @return
     */
    List<UserDTO> findByOrganAndPos(Long organId, boolean childed,Long posId);

    /**
     * 查询机构责任人
     * @param organId
     * @param childed
     * @return
     */
    List<UserDTO> findResByOrgan(Long organId,boolean childed);

    /**
     * 查询机构开拓人
     * @param organId
     * @param childed
     * @return
     */
    List<UserDTO> findPioneerByOrgan(Long organId,boolean childed);

    /**
     * 查询用户
     * @param id
     * @return
     */
    UserDTO findById(Long id);

    /**
     * 删除数据
     * @param id
     */
    void deleteById(Long id);

    /**
     * 发送密码
     * @param id
     */
    void sendPassword(Long id);
}
